package reflect;

import reflect.annotations.AutoRunMethod;

import java.lang.reflect.Method;

/**
 * 反射机制访问注解参数
 */
public class ReflectDemo8 {
    public static void main(String[] args) throws Exception {
        /*
            获取Person类中的sayHello方法上的注解@AutoRunMethod中的参数值
         */
        //加载Person的类对象
        Class cls = Class.forName("reflect.Person");
        //通过类对象获取sayHello方法
        Method method = cls.getDeclaredMethod("sayHello");
        //判断该方法是否被注解@AutoRunMethod标注
        if (method.isAnnotationPresent(AutoRunMethod.class)){
            //确定被标注，我们就可以通过反射对象获取对应的注解了
            AutoRunMethod arm = method.getAnnotation(AutoRunMethod.class);
            int value = arm.value();//通过注解对象获取对应的参数：value
            System.out.println("参数value的值为："+value);
        }

    }
}
